/**
 *
    算法描述： 1. 最高项若正，不输出+号
              2. 最高项若负，输出-号
              3. 系数为1，不输出
              4. 系数为0，不输出
              5. 指数为1，不输出

    解决所需数据结构+算法：
**/
#include<iostream>
using namespace std;

int main() {
    int n, x;
    cin >> n;
    for(int i = n; i >= 0; i--) {
        cin >> x;
        if(i == n) { // 最高项
            if(x > 0) {
                if(x != 1) cout << x;
                else { // 系数为1
                    if(i == 0) cout << x;
                }
            } else if(x < 0) {
                if(x != -1) cout << x;
                else { // 系数为-1
                    if(i == 0) cout << x;
                    else cout << "-";
                }
            } else continue;
        } else { // 非最高项
            if(x > 0) {
                if(x != 1) cout << "+" << x;
                else { // 系数为1
                    if(i != 0) cout << "+";
                    else cout << "+" << x;
                }
            } else if(x < 0) {
                if(x != -1) cout << x;
                else { // 系数为-1
                    if(i != 0) cout << "-";
                    else cout << x;
                }
            } else continue;
        }
        if(i > 1) cout << "x^" << i;
        else if(i == 1) cout << "x";
    }
    return 0;
} 